home *** CD-ROM | disk | FTP | other *** search
/ Boot Disc 5 / boot-disc-1997-01.iso / media / utility.cst / 00027_Script_String Utilities < prev    next >
Text File  |  1996-11-05  |  5KB  |  166 lines

  1. on TitleCase mytext
  2.   repeat with index=1 to the number of words in mytext
  3.     set myword=word index of mytext
  4.     set mychar=char 1 of myword
  5.     set mycharval=chartonum(mychar)
  6.     if mycharval>96 and mycharval<96+27 then
  7.       set mychar=numtochar(mycharval-32)
  8.       put mychar into char 1 of myword
  9.       put myword into word index of mytext
  10.     end if
  11.   end repeat
  12.   return mytext
  13. end
  14.  
  15. on UnTitleCase mytext
  16.   repeat with index=1 to the number of words in mytext
  17.     set myword=word index of mytext
  18.     set mychar=char 1 of myword
  19.     set mycharval=chartonum(mychar)
  20.     if mycharval>64 and mycharval<64+27 then
  21.       set mychar=numtochar(mycharval+32)
  22.       put mychar into char 1 of myword
  23.       put myword into word index of mytext
  24.     end if
  25.   end repeat
  26.   return mytext
  27. end
  28.  
  29. on UpperCase mytext
  30.   repeat with index=1 to the number of chars in mytext
  31.     set mychar=char index of mytext
  32.     set mycharval=chartonum(mychar)
  33.     if mycharval>96 and mycharval<96+27 then
  34.       set mychar=numtochar(mycharval-32)
  35.       put mychar into char index of mytext
  36.     end if
  37.   end repeat
  38.   return mytext
  39. end
  40.  
  41. on LowerCase mytext
  42.   repeat with index=1 to the number of chars in mytext
  43.     set mychar=char index of mytext
  44.     set mycharval=chartonum(mychar)
  45.     if mycharval>64 and mycharval<64+27 then
  46.       set mychar=numtochar(mycharval+32)
  47.       put mychar into char index of mytext
  48.     end if
  49.   end repeat
  50.   return mytext
  51. end
  52.  
  53.  
  54. on delpush newdelimiter
  55.   global delimiterlist
  56.   if not(listP(delimiterlist)) then
  57.     set delimiterlist=[]
  58.   end if
  59.   add delimiterlist,the itemdelimiter
  60.   set the itemdelimiter=newdelimiter
  61. end
  62.  
  63. on delpop
  64.   global delimiterlist
  65.   if not (listp(delimiterlist)) then
  66.     set delimiterlist=[]
  67.   end if
  68.   if count(delimiterlist)>0 then
  69.     set the itemdelimiter=getlast(delimiterlist)
  70.     deleteat delimiterlist,count(delimiterlist)
  71.   else
  72.     set the itemdelimiter=","
  73.   end if
  74. end
  75.  
  76. on replace basetext,oldtext,newtext
  77.   set buffer=""
  78.   set pos=offset(oldtext,basetext)
  79.   repeat while pos>0
  80.     if pos>1 then
  81.       set buffer=buffer&(char 1 to pos-1 of basetext)&newtext
  82.       delete char 1 to pos+length(oldtext)-1 of basetext
  83.     else
  84.       set buffer=buffer&(newtext)
  85.       delete char 1 to length(oldtext) of basetext
  86.     end if
  87.     set pos=offset(oldtext,basetext)
  88.   end repeat
  89.   set buffer=buffer&basetext
  90.   return buffer
  91. end
  92.  
  93. on symbol mystr
  94.   if listp(mystr) then
  95.     set mylist=mystr
  96.     set endlist=[:]
  97.     repeat with mystr in mylist
  98.       set punclist=[" "]
  99.       repeat with punc in punclist
  100.         set mystr=replace(mystr,punc,"_")
  101.       end repeat
  102.       set mysymbol=value("#"&mystr)
  103.       addprop endlist,mysymbol,0
  104.     end repeat
  105.     return endlist
  106.   else
  107.     set punclist=[" "]
  108.     repeat with punc in punclist
  109.       set mystr=replace(mystr,punc,"_")
  110.     end repeat
  111.     set mysymbol=value("#"&mystr)
  112.   end if
  113.   return mysymbol
  114. end
  115.  
  116. on listToText mylist,delimiter
  117.   set delimiter=default(the itemdelimiter,delimiter)
  118.   set buffer=""
  119.   repeat with entry in mylist
  120.     set buffer=buffer&entry&delimiter
  121.   end repeat
  122.   set dellength=length(delimiter)
  123.   delete char (length(buffer)-dellength+1) to length(buffer) of buffer
  124.   return buffer
  125. end
  126.  
  127. on textToList mytext,delimiter
  128.   set delimiter=default(the itemdelimiter,delimiter)
  129.   delpush delimiter
  130.   set baselist=[]
  131.   repeat with index=1 to the number of items in mytext
  132.     add baselist,item index of mytext
  133.   end repeat
  134.   delpop
  135.   return baselist
  136. end
  137.  
  138. on filltemplate templatelist,textline,mydelimiter
  139.   set delimiter=default(the itemdelimiter,mydelimiter)
  140.   delpush(delimiter)
  141.   if the number of items in textline<>count(templatelist) then
  142.     set error="The number of items in the line starting '"&(char 1 to 20 of textline)&"...' doesn't match the template count (currently "&count(templatelist)&" items)."
  143.     return error
  144.   end if
  145.   set filledlist=[:]
  146.   repeat with index=1 to the number of items in textline
  147.     set prop=symbol(getpropat(templatelist,index))
  148.     addprop filledlist,prop,(item index of textline)
  149.   end repeat
  150.   return filledlist
  151.   delpop()
  152. end
  153.  
  154. on safetext mytext
  155.   set mytext=replace(mytext,quote,"\'")
  156.   set mytext=replace(mytext,numtochar(10),"")
  157.   return mytext
  158. end
  159.  
  160. on outsafeput mytext
  161.   set mytext=replace(mytext,"\n",return)
  162.   set mytext=replace(mytext,"\t",tab)
  163.   set mytext=replace(mytext,"\'",quote)
  164.   return mytext
  165. end
  166.